package com.waitingsnow.common.share.netEaseMicroblog.friendships
{
	import com.waitingsnow.common.share.bridia.net.oauth.BDOAuthConnection;
	import com.waitingsnow.common.share.netEaseMicroblog.NEMicroblog;
	import com.waitingsnow.common.share.netEaseMicroblog.data.NEMConfig;
	import com.waitingsnow.common.share.netEaseMicroblog.data.NEMObject;
	
	/**
	 * 
	 * @author Tensharp
	 * 
	 * <p>包含了所有friendship接口</p>
	 * 
	 */	
	
	public class NEMFriendships extends NEMObject
	{
		/**
		 * 
		 * <p>创建一个新的NEMFriendships对象</p> 
		 * 
		 * @param parent 上级对象.(NEMicroblog)
		 * @param oauth OAuth链接
		 * 
		 */		
		
		public function NEMFriendships(parent:NEMicroblog, oauth:BDOAuthConnection)
		{
			super(parent, oauth);
		}
		
		///
		///	[Friendship create]
		///
		
		/**
		 * 
		 * <p>friendships/create</p>
		 * <p>关注指定用户。</p>
		 * 
		 * <ul>
		 * 	<li>如果用户通行证身份验证成功且用户已经开通微博则返回http状态为200；</li>
		 * 	<li>如果不是则返回401的状态和错误信息；</li>
		 * 	<li>根据参数查找不到对应的用户则返回404的状态和错误信息。</li>
		 * </ul>
		 * 
		 * @param user_id 		可选参数 : 用户ID，主要是用来区分用户ID跟微博昵称相同产生歧义的情况。
		 * @param screen_name 	可选参数 : 该用户的个性网址，也可以传user_id；
		 * 
		 */	
		
		public function friendship_create (user_id:String = null, screen_name:String = null):void
		{
			oauth.addOAuthParameters ("user_id", user_id, true);
			oauth.addOAuthParameters ("screen_name", screen_name, true);
			
			super.connect ("FRIENDSHIP_CREATE","POST");
		}

		///
		///	[Friendship destroy]
		///
		
		/**
		 * 
		 * <p>friendships/destroy</p> 
		 * <p>取消关注指定用户。</p>
		 * 
		 * <ul>
		 * 	<li>如果用户通行证身份验证成功且用户已经开通微博则返回http状态为200；</li>
		 * 	<li>如果不是则返回401的状态和错误信息；</li>
		 * 	<li>根据参数查找不到对应的用户则返回404的状态和错误信息。</li>
		 * </ul>
		 * 
		 * @param user_id 		可选参数 : 用户ID，主要是用来区分用户ID跟微博昵称相同产生歧义的情况。
		 * @param screen_name 	可选参数 : 该用户的个性网址，也可以传user_id；
		 * 
		 */
		
		public function friendship_destroy(user_id:String = null, screen_name:String = null):void
		{
			oauth.addOAuthParameters ("user_id", user_id, true);
			oauth.addOAuthParameters ("screen_name", screen_name, true);
			
			super.connect ("FRIENDSHIP_DESTROY","POST");
		}

		///
		///	[Friendship show]
		///
		
		/**
		 * 
		 * <p>friendships/show</p>
		 * <p></p>
		 * 
		 * <ul>
		 * 	<li>如果用户通行证身份验证成功且用户已经开通微博则返回http状态为200；</li>
		 * 	<li>如果不是则返回401的状态和错误信息；</li>
		 * 	<li>根据参数查找不到对应的用户则返回404的状态和错误信息。</li>
		 * </ul>
		 * 
		 * <ul>
		 * 	<li>source_id和source_screen_name均未传时使用当前登录用户作为source用户</li>
		 * 	<li>target_id或target_screen_name必须传递一个</li>
		 * <ul>
		 * 
		 * @param source_id 			可选参数 : 指定用户的userId
		 * @param source_screen_name 	可选参数 : 指定用户的个性网址
		 * @param target_id 			可选参数 : 指定用户的userId
		 * @param target_screen_name 	可选参数 : 目标用户的个性网址
		 * 
		 */	
		
		public function friendship_show(source_id:String = null, source_screen_name:String = null,target_id:String = null, target_screen_name:String = null):void
		{
			oauth.addOAuthParameters ("source_id", source_id, true);
			oauth.addOAuthParameters ("source_screen_name", source_screen_name, true);
			oauth.addOAuthParameters ("target_id", target_id, true);
			oauth.addOAuthParameters ("target_screen_name", target_screen_name, true);
			
			super.connect ("FRIENDSHIP_SHOW");
		}

		///
		///	[Friendship friends]
		///
		
		/**
		 * <p>statuses/friends</p>
		 * <p>获取指定用户的关注用户列表。</p>
		 * 
		 * <ul>
		 * 	<li>如果用户通行证身份验证成功且用户已经开通微博则返回http状态为200；</li>
		 * 	<li>如果不是则返回401的状态和错误信息；</li>
		 * 	<li>根据参数查找不到对应的用户则返回404的状态和错误信息。</li>
		 * </ul>
		 * 
		 * @param user_id 		可选参数 : 用户ID，主要是用来区分用户ID跟微博昵称相同产生歧义的情况。
		 * @param screen_name 	可选参数 : 该用户的个性网址，也可以传user_id；
		 * @param cursor 		可选参数 : 分页参数，单页只能包含30个关注列表
		 * 
		 */	
		
		public function friendship_friends(user_id:String = null, screen_name:String = null,cursor:int = 30):void
		{
			oauth.addOAuthParameters ("user_id", user_id, true);
			oauth.addOAuthParameters ("screen_name", screen_name, true);
			oauth.addOAuthParameters ("cursor", cursor.toString(), false);
			super.connect ("FRIENDSHIP_FRIENDS","GET");
		}

		///
		///	[Friendship followers]
		///
		
		/**
		 * <p>statuses/followers</p>
		 * <p>获取指定被关注用户列表。</p>
		 * 
		 * <ul>
		 * 	<li>如果用户通行证身份验证成功且用户已经开通微博则返回http状态为200；</li>
		 * 	<li>如果不是则返回401的状态和错误信息；</li>
		 * 	<li>根据参数查找不到对应的用户则返回404的状态和错误信息。</li>
		 * </ul>
		 * 
		 * @param user_id 		可选参数 : 用户ID，主要是用来区分用户ID跟微博昵称相同产生歧义的情况。
		 * @param screen_name 	可选参数 : 该用户的个性网址，也可以传user_id；
		 * @param cursor 		可选参数 : 分页参数，单页只能包含30个关注列表
		 * 
		 */
		
		public function friendship_followers(user_id:String = null, screen_name:String = null,cursor:int = 30):void
		{
			oauth.addOAuthParameters ("user_id", user_id, true);
			oauth.addOAuthParameters ("screen_name", screen_name, true);
			oauth.addOAuthParameters ("cursor", cursor.toString(), false);
			super.connect ("FRIENDSHIP_FOLLOWERS","GET");
		}
		
		///
		///	[Friendship names]
		///
		
		/**
		 *
		 * <p>friends/names</p>
		 * <p>获取当前用户的关注人名字列表,可用于@提示功能</p>
		 * 
		 */		
		
		public function friendship_names():void
		{
			super.connect ("FRIENDSHIP_NAMES");
		}
		
		///
		///	[Friendship followers names]
		///
		
		/**
		 * 
		 * <p>statuses/followers/names</p>
		 * <p>返回根据输入的拼音模糊查询后符合条件的指定用户的被关注的名字列表；</p>
		 * 
		 * <ul>
		 * 	<li>如果关注指定用户的人数不大于3000，从关注指定用户的人中查找；</li>
		 * 	<li>如果关注指定用户的人数大于3000，从与指定用户互相关注的人以及关注指定用户的人中的3000个中查找；</li>
		 * 	<li>可通过请求参数user_id或screen_name指定用户；</li>
		 * 	<li>如果不指定用户，默认为当前用户为指定用户。</li>
		 * </ul>
		 *  
		 * @param user_id 		可选参数 : 指定用户ID，主要是用来区分用户ID跟微博昵称相同产生歧义的情况。
		 * @param screen_name 	可选参数 : 指定该用户的个性网址，也可以传user_id；
		 * @param cursor 		可选参数 : 分页参数，返回cursor之后的结果，包括cursor，可与count参数配合使用
		 * @param count 		可选参数 : 数量，默认为30
		 * @param matchkey 		可选参数 : 按照拼音或汉字模糊匹配的key，默认为空串（不做过滤）
		 * @param show_img 		可选参数 : 为true显示头像的图片，默认不显示
		 * 
		 */	
		
		public function friendship_followers_names(user_id:String = null, screen_name:String = null,cursor:int = 30,count:int = 30,matchkey:String = "", show_img:Boolean = false):void
		{
			oauth.addOAuthParameters ("user_id", user_id, true);
			oauth.addOAuthParameters ("screen_name", screen_name, true);
			oauth.addOAuthParameters ("cursor", cursor.toString(), false);
			oauth.addOAuthParameters ("count", count.toString(), false);
			oauth.addOAuthParameters ("matchkey", matchkey, true);
			oauth.addOAuthParameters ("show_img", show_img.toString(), false);
			super.connect ("FRIENDSHIP_FOLLOWERS_NAME", "GET");
		}
	}
}